package com.ruoyi.system.pay.domain.po;

import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 退款记录实体类
 * 记录退款申请，支持 部分退款 & 全额退款。
 * 退款审核可选，部分支付方式需要 人工审核。
 * 状态：
 * PENDING：等待审核
 * PROCESSING：处理中
 * SUCCESS：退款成功
 * FAILED：退款失败
 */
@Data
public class PayRefund {

    /**
     * 退款 ID（主键，自增）
     */
    private Long id;

    /**
     * 关联订单 ID
     */
    private Long orderId;

    /**
     * 关联支付流水 ID
     */
    private Long transactionId;

    /**
     * 退款金额
     */
    private BigDecimal refundAmount;

    /**
     * 退款状态（PENDING, PROCESSING, SUCCESS, FAILED）
     */
    private String status;

    /**
     * 退款原因
     */
    private String reason;

    /**
     * 退款申请时间
     */
    private Date applyTime;

    /**
     * 退款完成时间
     */
    private Date completedTime;
}
